import request from '@/utils/request'

/**
 * 文章管理API服务
 */

// ==================== 文章管理 ====================

/**
 * 分页查询文章
 * @param {Object} params 查询参数
 * @returns {Promise} 返回文章分页数据
 */
export const getArticlePage = (params) => {
  return request({
    url: '/api/article/page',
    method: 'post',
    data: params
  })
}

/**
 * 创建文章
 * @param {Object} articleData 文章数据
 * @returns {Promise} 返回操作结果
 */
export const createArticle = (articleData) => {
  return request({
    url: '/api/article',
    method: 'post',
    data: articleData
  })
}

/**
 * 更新文章
 * @param {Object} articleData 文章数据
 * @returns {Promise} 返回操作结果
 */
export const updateArticle = (articleData) => {
  return request({
    url: '/api/article',
    method: 'put',
    data: articleData
  })
}

/**
 * 删除文章
 * @param {number} id 文章ID
 * @returns {Promise} 返回操作结果
 */
export const deleteArticle = (id) => {
  return request({
    url: '/api/article/' + id,
    method: 'delete'
  })
}

/**
 * 发布文章
 * @param {number} id 文章ID
 * @returns {Promise} 返回操作结果
 */
export const publishArticle = (id) => {
  return request({
    url: '/api/article/' + id + '/publish',
    method: 'post'
  })
}

/**
 * 获取文章详情
 * @param {number} id 文章ID
 * @returns {Promise} 返回文章详情
 */
export const getArticleDetail = (id) => {
  return request({
    url: '/api/article/' + id,
    method: 'get'
  })
}

// ==================== 分类管理 ====================

/**
 * 分页查询分类
 * @param {Object} params 查询参数
 * @returns {Promise} 返回分类分页数据
 */
export const getCategoryPage = (params) => {
  return request({
    url: '/api/article/category/page',
    method: 'post',
    data: params
  })
}

/**
 * 创建分类
 * @param {Object} categoryData 分类数据
 * @returns {Promise} 返回操作结果
 */
export const createCategory = (categoryData) => {
  return request({
    url: '/api/article/category',
    method: 'post',
    data: categoryData
  })
}

/**
 * 更新分类
 * @param {Object} categoryData 分类数据
 * @returns {Promise} 返回操作结果
 */
export const updateCategory = (categoryData) => {
  return request({
    url: '/api/article/category',
    method: 'put',
    data: categoryData
  })
}

/**
 * 删除分类
 * @param {number} id 分类ID
 * @returns {Promise} 返回操作结果
 */
export const deleteCategory = (id) => {
  return request({
    url: '/api/article/category/' + id,
    method: 'delete'
  })
}

/**
 * 获取分类详情
 * @param {number} id 分类ID
 * @returns {Promise} 返回分类详情
 */
export const getCategoryDetail = (id) => {
  return request({
    url: '/api/article/category/' + id,
    method: 'get'
  })
}

// ==================== 标签管理 ====================

/**
 * 分页查询标签
 * @param {Object} params 查询参数
 * @returns {Promise} 返回标签分页数据
 */
export const getTagPage = (params) => {
  return request({
    url: '/api/article/tag/page',
    method: 'post',
    data: params
  })
}

/**
 * 创建标签
 * @param {Object} tagData 标签数据
 * @returns {Promise} 返回操作结果
 */
export const createTag = (tagData) => {
  return request({
    url: '/api/article/tag',
    method: 'post',
    data: tagData
  })
}

/**
 * 更新标签
 * @param {Object} tagData 标签数据
 * @returns {Promise} 返回操作结果
 */
export const updateTag = (tagData) => {
  return request({
    url: '/api/article/tag',
    method: 'put',
    data: tagData
  })
}

/**
 * 删除标签
 * @param {number} id 标签ID
 * @returns {Promise} 返回操作结果
 */
export const deleteTag = (id) => {
  return request({
    url: '/api/article/tag/' + id,
    method: 'delete'
  })
}

/**
 * 获取标签详情
 * @param {number} id 标签ID
 * @returns {Promise} 返回标签详情
 */
export const getTagDetail = (id) => {
  return request({
    url: '/api/article/tag/' + id,
    method: 'get'
  })
}

// ==================== 专题管理 ====================

/**
 * 分页查询专题
 * @param {Object} params 查询参数
 * @returns {Promise} 返回专题分页数据
 */
export const getTopicPage = (params) => {
  return request({
    url: '/api/article/topic/page',
    method: 'post',
    data: params
  })
}

/**
 * 创建专题
 * @param {Object} topicData 专题数据
 * @returns {Promise} 返回操作结果
 */
export const createTopic = (topicData) => {
  return request({
    url: '/api/article/topic',
    method: 'post',
    data: topicData
  })
}

/**
 * 更新专题
 * @param {Object} topicData 专题数据
 * @returns {Promise} 返回操作结果
 */
export const updateTopic = (topicData) => {
  return request({
    url: '/api/article/topic',
    method: 'put',
    data: topicData
  })
}

/**
 * 删除专题
 * @param {number} id 专题ID
 * @returns {Promise} 返回操作结果
 */
export const deleteTopic = (id) => {
  return request({
    url: '/api/article/topic/' + id,
    method: 'delete'
  })
}

/**
 * 获取专题详情
 * @param {number} id 专题ID
 * @returns {Promise} 返回专题详情
 */
export const getTopicDetail = (id) => {
  return request({
    url: '/api/article/topic/' + id,
    method: 'get'
  })
}